// Symbol 作为属性名，该属性不会出现在 for…in 、 for…of 循环中，也不会被 Object.keys() 、 Object.getOwnPropertyNames() 、 JSON.stringify() 返回。
// 但是，它也不是私有属性，有一个 Object.getOwnPropertySymbols 方法，可以获取指定对象的所有Symbol 属性名(以数组形式排列)。
let a = {
    x:1,
    y:2
}

let x = Symbol()
a[x] = 'hello'

for(key in a){
	console.log(key,a[key])
	/*
		x 1
		y 2
	*/
}

console.log(Object.getOwnPropertySymbols(a))//[Symbol()]


// Symbol()每次被调用都会生成一个新的Symbol
// Symbol.keyFor()方法返回一个已经登记的Symbol类型值的key
let s1 = Symbol.for("foo");
Symbol.keyFor(s1) // "foo"

let s2 = Symbol("foo");
Symbol.keyFor(s2) // undefined